Information recording apparatus, buffer allocation method, and computer-readable recording medium storing computer program

ABSTRACT

An information recording apparatus according to the present invention manages a priority value for each host that can log in, and allocates an immediate data buffer to each host based on the priority value. The priority value changes in accordance with data transfer amount, command importance degree, etc. The information recording apparatus recalculates the priority value regularly or arbitrary, and re-performs login negotiation by requesting re-login to the hosts. The amount of buffer allocated is dynamically changed by this login negotiation, and a buffer allocation state best suited to each occasion is built. Since the present invention can dynamically determine or change the allocation amount of the immediate data buffer in accordance with the condition of each occasion, the performance of an iSCSI apparatus can be improved.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to an information recordingapparatus, a buffer allocation method, and a computer-readable recordingmedium storing a computer program, and particularly relates to aninformation recording apparatus having a function for immediate datatransfer which is defined by iSCSI.

[0003] 2. Description of the Related Art

[0004] A SCSI (Small Computer System Interface) interface is used at theinput/output of an HDD (Hard Disk Drive), a disk array apparatus, etc.iSCSI allows this SCSI interface to be used on TCP/IP (TransmissionControl Protocol/Internet Protocol). iSCSI is authorized by the IETF(Internet Engineering Task Force). iSCSI transfers data by encapsulatingSCSI commands, responses, etc. in a TCP packet and replacing the SCSItransport with a transport for an IP network.

[0005] Immediate data transfer is one of transfers by iSCSI, and isdescribed in a document on the Internet “draft-ietf-ips-iscsi-20.text”0<URL:http://www.haifa.il.ibm.com/satran/ips/draft-ietf-ips-iscsi-20.txt>. Forexample, in an ordinary data transfer, when a host issues a writecommand to a disk array apparatus, the disk array apparatus sends arequest for data to the host. After this, the host starts data transferto the disk array apparatus. In contrast, in an immediate data transfer,after issuing a write command to the disk array apparatus, the hoststarts data transfer to the disk array apparatus without waiting for adata request from the disk array apparatus. Since in the immediate datatransfer, the disk array apparatus simultaneously receives a command anddata, a sufficient free space is required in the buffer of the diskarray apparatus.

[0006] By using immediate data transfer, it becomes possible to build anIP-based SAN (Storage Area Network). Specifically, it becomes possiblefor a disk array apparatus installed on a network to be logged into by aplurality of hosts. However, the capacity of the immediate data bufferof the disk array apparatus is limited. Therefore, when the disk arrayapparatus allocates its immediate data buffer to all the hosts logginginto the disk array apparatus, the capacity of the immediate data buffermay not be enough. More specifically, in order to allow all the hosts toperform immediate data transfer, the immediate data buffer of the diskarray apparatus needs to have capacity corresponding to number ofsessions×maximum number of I/Os. Accordingly, if the number of sessionsor the number of hosts increases, the immediate data buffer cannotsecure necessary capacity required for all the hosts to performimmediate data transfer.

[0007] For example, assume that the disk array apparatus is designed toallocate 10 mega bytes of the immediate data buffer to each host. Inthis case, if 200 hosts log in, the memory capacity required in theimmediate data buffer is 2 giga bytes. If the memory installed on thedisk array apparatus has less than 2 giga bytes, the disk arrayapparatus cannot allocate the immediate data buffer to all the hoststhat can log in.

[0008] In a case where the disk array apparatus is designed to uniformlyallocate the immediate data buffer to all the hosts that can log in, thecapacity of the immediate data buffer that is allocated to each host isthe value obtained by dividing the total capacity of the immediate databuffer of the disk array apparatus by the maximum number of hosts thatcan log in. For example, in a case where a disk array apparatus havingan immediate data buffer of 1 mega byte can be logged into by 200 hosts,the capacity of the immediate data buffer that is usable by each host isonly 5 kilo bytes.

[0009] If the disk array apparatus allocates a sufficient capacity ofthe immediate data buffer to each host that logs in, the disk arrayapparatus can allow only a limited number of hosts to perform immediatedata transfer thereto. For example, in a case where the immediate databuffer of the disk array apparatus has 10 mega bytes and the disk arrayapparatus allocates 1 mega byte of the immediate data buffer to eachhost, all the capacity of the immediate data buffer is occupied by thefirst ten hosts that log in. Therefore, any hosts that log in after thiscannot use the immediate data buffer or perform immediate data transfer.

SUMMARY OF THE INVENTION

[0010] The present invention was made in view of the above-describedproblem, and an object of the present invention is to improve theperformance of the iSCSI apparatus of a disk array apparatus and as aresult the performance of the whole system, by allocating the immediatedata buffer appropriately in accordance with the condition of eachoccasion.

[0011] Another object of the present invention is to make the most ofthe ability of a host that is high in a priority order, by efficientlyutilizing the immediate data buffer of an information recordingapparatus suited to immediate data transfer.

[0012] To achieve the above objects, an information recording apparatusaccording to a first aspect of the present invention is an informationrecording apparatus storing data received from a plurality of hostcomputers, and comprises:

[0013] a buffer memory having a buffer area for temporarily storing thedata;

[0014] a memory storing a priority degree for each of the hostcomputers, the priority degree being dynamically updated based on astatus of the data received from corresponding one of the hostcomputers; and

[0015] a buffer allocation unit dynamically allocating portions of thebuffer area to the host computers, the portions of the buffer areaallocated to the host computers having respective amounts determinedbased on the priority degrees of the host computers.

[0016] As described above, by storing the priority degree for each ofthe host computers and by determining the amount of a portion of thebuffer area based on the priority degree, it is possible to increase theamount of a portion of the buffer area for a host computer whose commandshould be processed preferentially, and to reduce the amount of aportion of the buffer area for a host computer whose command needs notbe processed preferentially. Accordingly, the ability of the hostcomputer that is high in the priority order can be fully utilized, andthe process performance of the whole system can be improved due to theeffective use of the buffer memory.

[0017] The information recording apparatus may further comprise a logindetermination unit determining whether or not a host computer loggedinto the information recording apparatus,

[0018] the memory may store an initial priority degree which is pre-setfor each of the host computers, and a reference priority degreerepresenting a threshold level for the initial priority degrees,

[0019] the login determination unit may determine whether or not theinitial priority degree of a host computer stored in the memory ishigher than the reference priority degree stored in the memory, when thehost computer logs into the information recording apparatus, and

[0020] the buffer allocation unit may allocate a portion of the bufferarea corresponding to the determined amount to the host computer, in acase where the login determination unit determines that the initialpriority degree of the host computer is higher than the referencepriority degree.

[0021] By arranging that a portion of the buffer area should not beallocated in a case where the initial priority degree pre-set for eachhost computer is lower than the reference priority degree, it ispossible to avoid a situation that the buffer area is occupied by hostcomputers having a low priority degree and therefore a buffer areacannot be allocated to a host computer which logs in afterwards.

[0022] In the information recording apparatus, the priority degree maybe a numerical value, the value being large when the priority degree ishigh, while being small when the priority degree is low, and the bufferallocation unit may determine an amount of a portion of the buffer areato be allocated to a host computer by “(the priority degree of the hostcomputer/total of the priority degrees of all host computers to whichportions of the buffer area are allocated)×a whole capacity of thebuffer memory”.

[0023] Due to this, it is possible to allocate a large portion of thebuffer area to a host computer having a high priority degree, and toachieve an effective use of the buffer memory.

[0024] The information recording apparatus may further comprise a bufferfreeing unit freeing portions of the buffer area already allocated tohost computers, on a basis of host computer by host computer, and

[0025] in a case where the buffer allocation unit cannot secure aportion of the buffer area corresponding to the determined amount in thebuffer memory when attempting to allocate a portion of the buffer areato a host computer,

[0026] the buffer freeing unit may free a portion of the buffer areaalready allocated to another host computer for which a priority degreelower than that of the host computer is set, based on a predeterminedcondition, and

[0027] the buffer allocation unit may allocate a portion of the bufferarea corresponding to the determined amount to the host computer, in acase where a portion of the buffer area corresponding to the determinedamount can be secured in the buffer memory due to the freeing of theportion of the buffer area by the buffer freeing unit.

[0028] With this design, in a case where there is not enough free spacein the buffer memory when a host computer newly logs in, it is possibleto compare the priority degrees and to allocate a potion of the bufferarea allocated to an already logging-in host computer to the newlylogging-in host computer.

[0029] The information recording apparatus may further comprise apriority degree determination unit,

[0030] the memory may store for each host computer data representing thestatus corresponding to an amount of data and/or a usage degree ofvarious commands received from the host computer and from a time thehost computer logged into the information recording apparatus,

[0031] the priority degree determination unit may determine the prioritydegree of each host computer that is stored in the memory and updatingthe stored priority degree, based on the amount of data and/or the usagedegree of various commands and the initial priority degree stored in thememory, and

[0032] the buffer allocation unit may determine a reallocation amount ofa portion of the buffer area to be allocated to each host computer thathas been logged into the information recording apparatus based on thepriority degree determined by the priority degree determination unit,and allocate a portion of the buffer area corresponding to thedetermined reallocation amount to each host computer.

[0033] By determining the priority degree regularly or in response to anarbitrary trigger and dynamically changing the allocation amount of aportion of the buffer area of each host computer based on the determinedpriority degree, it is possible to realize a buffer area allocationstate that is suitable for the condition at each occasion.

[0034] In the information recording apparatus, the priority degree maybe a numerical value, the value being large when the priority degree ishigh, while being small when the priority degree is low, and thepriority degree determination unit may determine the priority degree ofa host computer by “(the amount of data transferred from the hostcomputer/total amounts of data transferred from all host computers towhich portions of the buffer area are allocated)+(the usage degree ofvarious commands from the host computer/total of usage degrees ofvarious commands from all host computers to which portions of the bufferarea are allocated)+the initial priority degree of the host computer”.

[0035] By highly setting the priority degree of a host computer fromwhich large amount of data is transferred and whose usage degree ofvarious commands is high, it is possible to allocate a large portion ofthe buffer area to a host computer that needs to be processedpreferentially.

[0036] The information recording apparatus may further comprise a logindetermination unit determining whether or not a host computer loggedinto the information recording apparatus, and

[0037] the freeing of the portion of the buffer area already allocatedto a host computer by the buffer freeing unit may be achieved in amanner that

[0038] the buffer freeing unit requests the host computer to re-log intothe information recording apparatus, and

[0039] the login determination unit rejects allocation of a portion ofthe buffer area to the host computer, when the host computer re-logsinto the information recording apparatus.

[0040] In the information recording apparatus, the allocation of theportion of the buffer area corresponding to the determined reallocationamount to each host computer by the buffer allocation unit may beachieved in a manner that

[0041] the buffer allocation unit requests each host computer to re-loginto the information recording apparatus, and

[0042] the login determination unit changes an amount of a portion ofthe buffer area to be allocated to each host computer, when each hostcomputer re-logs into the information recording apparatus.

[0043] A method according to a second aspect of the present invention isa method for receiving data from a plurality of host computers andstoring the received data in an information recording apparatus, andcomprises the steps of:

[0044] storing a priority degree for each of the host computers in amemory, the priority degree being dynamically updated based on a statusof the data received from corresponding one of the host computers;

[0045] determining respective amounts of portions of a buffer area of abuffer memory to be allocated to respective host computers based on thepriority degrees of the host computers; and

[0046] dynamically allocating the portions of the buffer area of thebuffer memory having the amounts determined in the determining step, tothe host computers.

[0047] A buffer allocation method according to a third aspect of thepresent invention is a method which allocates a portion of a buffer areaof a buffer memory for temporarily storing data and included in asubordinate apparatus which stores data received from a plurality ofsuperordinate apparatuses to each superordinate apparatus, andcomprises:

[0048] an allocation amount determination step of determining an amountof a portion of the buffer area to be allocated to each superordinateapparatus, based on a priority degree which is set for eachsuperordinate apparatus and stored in a memory of the subordinateapparatus; and

[0049] a buffer allocating step of allocating a portion of the bufferarea corresponding to the amount determined in the allocation amountdetermination step to a superordinate apparatus for which a highpriority degree is set, preferentially over a superordinate apparatusfor which a low priority degree is set.

[0050] In the buffer allocation method, in the allocation amountdetermination step, an amount of a portion of the buffer area to benewly allocated to a new superordinate apparatus to which a portion ofthe buffer area has not yet been allocated, may be determined, and

[0051] the buffer allocating step may include:

[0052] an amount securing determination step of determining whether ornot a portion of the buffer area corresponding to the amount determinedin the allocation amount determination step can be secured in the buffermemory;

[0053] a buffer freeing step of freeing portions of the buffer areaalready allocated to some or all of superordinate apparatuses for whicha priority degree lower than that of the new superordinate apparatus isset, in a case where it is determined in the amount securingdetermination step that the portion of the buffer area cannot besecured; and

[0054] a newly allocating step of allocating a portion of the bufferarea corresponding to the amount determined in the allocation amountdetermination step to the new superordinate apparatus, by assigningamounts of portions of the buffer area freed in the buffer freeing stepto the amount determined in the allocation amount determination step.

[0055] In the buffer allocation method, the buffer freeing step mayinclude:

[0056] a re-login requesting step of requesting a superordinateapparatus to which a portion of the buffer area is already allocated, tore-log into the subordinate apparatus; and

[0057] an allocation rejecting step of rejecting allocation of a portionof the buffer area to the superordinate apparatus, when thesuperordinate apparatus re-logs into the subordinate apparatus inaccordance with a request in the re-login requesting step, and

[0058] the freeing of portions of the buffer area in the buffer freeingstep may be realized by rejection of allocation of a portion of thebuffer area in the allocation rejecting step.

[0059] The buffer allocation method may further comprise a prioritydegree changing step of changing the priority degree of eachsuperordinate apparatus stored in the memory,

[0060] in the allocation amount determination step, a reallocationamount of a portion of the buffer area to be allocated to eachsuperordinate apparatus that has been logged into the subordinateapparatus may be determined based on the priority degree changed in thepriority degree changing step, and

[0061] in the buffer allocating step, a portion of the buffer areacorresponding to the reallocation amount determined in the allocationamount determination step may be allocated to each superordinateapparatus.

[0062] In the buffer allocation method, the buffer allocating step mayinclude:

[0063] a re-login requesting step of requesting each superordinateapparatus that has been logged into the subordinate apparatus to re-loginto the subordinate apparatus; and

[0064] an amount changing step of changing the amount of the portion ofthe buffer area to be allocated to each superordinate apparatus, wheneach superordinate apparatus re-logs into the subordinate apparatus inaccordance with a request in the re-login requesting step, and

[0065] the allocation of a portion of the buffer area corresponding tothe reallocation amount to each superordinate apparatus in the bufferallocating step may be realized by changing of the amount of the portionof the buffer area to be allocated to each superordinate apparatus inthe amount changing step.

[0066] A computer-readable recording medium storing a computer programaccording to a fourth aspect of the present invention is a mediumstoring a computer program for receiving data from a plurality of hostcomputers and storing the received data in an information recordingapparatus, and the computer program comprises the steps of:

[0067] storing a priority degree for each of the host computers in amemory, the priority degree being dynamically updated based on a statusof the data received from corresponding one of the host computers;

[0068] determining respective amounts of portions of a buffer area of abuffer memory to be allocated to respective host computers based on thepriority degrees of the host computers; and

[0069] dynamically allocating the portions of the buffer area of thebuffer memory having the amounts determined in the determining step, tothe host computers.

[0070] A computer-readable recording medium storing a computer programaccording to a fifth aspect of the present invention is a medium storinga computer program for allocating a portion of a buffer area of a buffermemory for temporarily storing data and included in a subordinateapparatus which stores data received from a plurality of superordinateapparatuses to each superordinate apparatus, and the computer programcomprises:

[0071] an allocation amount determination step of determining an amountof a portion of the buffer area to be allocated to each superordinateapparatus, based on a priority degree which is set for eachsuperordinate apparatus and stored in a memory of the subordinateapparatus; and

[0072] a buffer allocating step of allocating a portion of the bufferarea corresponding to the amount determined in the allocation amountdetermination step to a superordinate apparatus for which a highpriority degree is set, preferentially over a superordinate apparatusfor which a low priority degree is set.

[0073] In the computer-readable recording medium storing the computerprogram,

[0074] in the allocation amount determination step, an amount of aportion of the buffer area to be newly allocated to a new superordinateapparatus to which a portion of the buffer area has not yet beenallocated, may be determined, and

[0075] the buffer allocating step may include:

[0076] an amount securing determination step of determining whether ornot a portion of the buffer area corresponding to the amount determinedin the allocation amount determination step can be secured in the buffermemory,

[0077] a buffer freeing step of freeing portions of the buffer areaalready allocated to some or all of superordinate apparatuses for whicha priority degree lower than that of the new superordinate apparatus isset, in a case where it is determined in the amount securingdetermination step that the portion of the buffer area cannot besecured; and

[0078] a newly allocating step of allocating a portion of the bufferarea corresponding to the amount determined in the allocation amountdetermination step to the new superordinate apparatus, by assigningamounts of portions of the buffer area freed in the buffer freeing stepto the amount determined in the allocation amount determination step.

[0079] In the computer-readable recording medium storing the computerprogram, the buffer freeing step may include:

[0080] a re-login requesting step of requesting a superordinateapparatus to which a portion of the buffer area is already allocated, tore-log into the subordinate apparatus; and

[0081] an allocation rejecting step of rejecting allocation of a portionof the buffer area to the superordinate apparatus, when thesuperordinate apparatus re-logs into the subordinate apparatus inaccordance with a request in the re-login requesting step, and

[0082] the freeing of portions of the buffer area in the buffer freeingstep may be realized by rejection of allocation of a portion of thebuffer area in the allocation rejecting step.

[0083] In the computer-readable recording medium storing the computerprogram,

[0084] the computer program may further comprise a priority degreechanging step of changing the priority degree of each superordinateapparatus stored in the memory,

[0085] in the allocation amount determination step, a reallocationamount of a portion of the buffer area to be allocated to eachsuperordinate apparatus that has been logged into the subordinateapparatus may be determined based on the priority degree changed in thepriority degree changing step, and

[0086] in the buffer allocating step, a portion of the buffer areacorresponding to the reallocation amount determined in the allocationamount determination step may be allocated to each superordinateapparatus.

[0087] In the computer-readable recording medium storing the computerprogram,

[0088] the buffer allocating step may include:

[0089] a re-login requesting step of requesting each superordinateapparatus that has been logged into the subordinate apparatus to re-loginto the subordinate apparatus; and

[0090] an amount changing step of changing the amount of the portion ofthe buffer area to be allocated to each superordinate apparatus, wheneach superordinate apparatus re-logs into the subordinate apparatus inaccordance with a request in the re-login requesting step, and

[0091] the allocation of a portion of the buffer area corresponding tothe reallocation amount to each superordinate apparatus in the bufferallocating step may be realized by changing of the amount of the portionof the buffer area to be allocated to each superordinate apparatus inthe amount changing step.

BRIEF DESCRIPTION OF THE DRAWINGS

[0092] These objects and other objects and advantages of the presentinvention will become more apparent upon reading of the followingdetailed description and the accompanying drawings in which:

[0093]FIG. 1 is a block diagram showing a configuration of a systemincluding a disk array apparatus according to an embodiment of thepresent invention;

[0094]FIG. 2 is a block diagram showing a functional configuration of ahost adaptor shown in FIG. 1;

[0095]FIG. 3 is a block diagram showing a physical configuration of thehost adaptor shown in FIG. 1;

[0096]FIG. 4A and FIG. 4B are diagrams showing examples of tables storedin a data storage area shown in FIG. 2;

[0097]FIG. 5 is a flowchart for explaining a process for allocating animmediate data buffer to a host when the host logs in;

[0098]FIG. 6 is a flowchart for explaining a priority valuerecalculation process in step A5 of FIG. 5;

[0099]FIG. 7 is a flowchart for explaining a buffer allocation processin step A6 of FIG.5; and

[0100]FIG. 8 is a flowchart for explaining a process for dynamicreallocation of the immediate data buffer.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0101] Embodiments of the present invention will be specificallyexplained with reference to the attached drawings. FIG. 1 is a blockdiagram showing the configuration of a system including a disk arrayapparatus according to an embodiment of the information recordingapparatus of the present invention. A plurality of host computers(hosts) 1 a, 1 b, . . . , 1 n and a disk array apparatus 2 which is oneexample of the information recording apparatus of the present inventionare connected via an IP (Internet Protocol) network 10. The host 1corresponds to the superordinate apparatus, if the disk array apparatus2 is regarded as the subordinate apparatus. The host 1 sends data to bestored in the disk array apparatus 2 to the disk array apparatus 2, andreceives data stored in the disk array apparatus 2 from the disk arrayapparatus 2. The disk array apparatus 2 has a function as an iSCSIapparatus directly connected to the IP network 10. The disk arrayapparatus 2 comprises a host adaptor 3, a disk adaptor 6, and aplurality of disks 7. The disk array apparatus 2 reads and writes datafrom and to the disks 7 in accordance with a request from the host 1sent via the IP network 10. The host adaptor 3 includes a processor, amemory, etc., and mainly performs a process for data transfer betweenthe host 1 and the disk array apparatus 2, a process for acceptinglogin, etc. The disk adaptor 6 mainly performs writing and reading ofdata to and from the disks 7 by controlling the disks 7.

[0102]FIG. 2 is a block diagram showing the functional configuration ofthe host adaptor 3. The host adaptor 3 has a function for allocating animmediate data buffer to the host 1. The host adaptor 3 comprises a hostcommunication unit 31, a login determination unit 32, an immediate databuffer 33, a data storage area 34, a buffer allocation unit 35, apriority value recalculation unit 36, a buffer freeing unit 37, and adisk input/output unit 38. The host communication unit 31 is connectedto the IP network 10, and processes a login/logout performed by the host1 to the disk array apparatus 2 and data transfer, etc. The logindetermination unit 32 conducts a negotiation between the host 1 and thedisk array apparatus 2 when the host 1 logs into the disk arrayapparatus 2, and determines various parameters related to immediate datatransfer defined by iSCSI. The immediate data buffer 33 temporarilystores transfer data (write data) received from the host 1 in immediatedata transfer after the host 1 issues a write command to the disk arrayapparatus 2. The immediate data buffer 33 has a buffer area, and aportion of the buffer area of the immediate data buffer 33 is allocatedto the host 1. The data storage area 34 stores various tables used forallocating the immediate data buffer 33 to the plurality of hosts 1. Thebuffer allocation unit 35 allocates a part of the buffer capacity (size)of the immediate data buffer 33 to each of the plurality of hosts 1. Thepriority value recalculation unit 36 recalculates a priority value setfor each of the plurality of hosts 1 if necessity arises. The priorityvalue is a numerical value representing the degree of priority of eachhost over other hosts in buffer allocation when a plurality of hostsuses the immediate data buffer 33. In this embodiment, a large priorityvalue is set for a host that is high in the priority order, and a smallpriority value is set for a host that is low in the priority order. Thebuffer freeing unit 37 frees the immediate data buffer 33 that isallocated to a host having a small priority value to secure a buffer tobe allocated to a host having a large priority value in a predeterminedcase. The disk input/output unit 38 is connected to the disk adaptor 6,and transfers data exchanged between the disks 7 and the host 1.

[0103] A negotiation performed by the login determination unit 32related to immediate data transfer will now be explained.

[0104] Various parameters determined by a negotiation between the host 1and the disk array apparatus 2 related to immediate data transferinclude an immediate data parameter, a first burst length parameter,etc. The immediate data parameter is a parameter for determininguse/non-use of immediate data transfer. The first burst length parameteris a parameter indicating the maximum data length in immediate datatransfer.

[0105] If both of the host 1 and the disk array apparatus 2 declare“immediate data=yes” in a negotiation, immediate data transfer becomespossible between the host 1 and the disk array apparatus 2. The maximumdata length in the immediate data transfer is determined by first burstlength keys declared by the host 1 and the disk array apparatus 2 toeach other. Specifically, the smallest one of the key values declared bythem is adopted. In a case where the transfer data length declared bythe disk array apparatus 2 is shorter than the transfer data lengthdeclared by the host 1, the host 1 cannot perform the immediate datatransfer that exceeds the key value adopted.

[0106]FIG. 3 is a block diagram showing the physical configuration ofthe host adaptor 3. A processor 52 performs calculation in accordancewith a process instruction stored in a memory 53, and controls a memory53 and interfaces 54 and 55 via a bus 51. The interface 54 is connectedto the IP network 10, and the interface 55 is connected to the diskadaptor 6.

[0107] The operation of the host communication unit 31 constituting thehost adaptor 3 shown in FIG. 2 is realized by the processor 52controlling the interface 54, etc. The operation of the diskinput/output unit 38 is realized by the processor 52 controlling theinterface 55, etc. Further, the operations of the login determinationunit 32, the buffer allocation unit 35, the priority value recalculationunit 36, and the buffer freeing unit 37 are realized by the processor 52controlling the memory 53, etc. The data storage area 34 and theimmediate data buffer 33 are realized by some part of the memory 53.

[0108]FIG. 4A and FIG. 4B are diagrams showing examples of tables storedin the data storage area 34. FIG. 4A shows an initial priority valuetable T1 on which identification information (host ID) of every hostthat is permitted to log into the disk array apparatus 2 and an initialpriority value of every host are registered. As the host ID, anidentifier used in network communication such as initiator nameparameter and initiator alias parameter defined by iSCSI, authenticationkey, IP address for TCP/IP, MAC address, etc. is used. The initialpriority value is the initial value of the priority value, and can beset arbitrarily by the manager of the disk array apparatus 2. Themanager sets a large value as the initial priority value for a host towhich the immediate data buffer 33 should be allocated preferentially,and sets a small value as the initial priority value for a host whichneeds not to be taken care of preferentially. The host ID and initialpriority value are managed host by host.

[0109]FIG. 4B shows a priority value table T2 on which identificationnumber (host ID), initial priority value, total amount of datatransferred after login, command importance degree after login, currentpriority value, and buffer allocation amount of the host which isactually logging into the disk array apparatus 2 are registered. Theseregistered data are managed host by host. The priority value table T2 isreferred to when priority values are recalculated by the priority valuerecalculation unit 36, when the buffer allocation amount is changed,etc.

[0110] The total amount of data transferred and command importancedegree are values used for calculating the priority value of each host.The total amount of data transferred is used for increasing the priorityvalue of a host which sends a large amount of data. The commandimportance degree is used for increasing the priority value of a hostwhich uses many important commands. The total amount of data transferredand command importance degree of each host are updated as needed by thehost communication unit 31, and registered on the priority value tableT2. The total amount of data transferred is calculated by accumulatingthe amount of data which has been transferred when transfer of writedata is completed. The command importance degree is obtained byquantifying the frequency of usage of various commands issued by thehost 1 to the disk array apparatus 2, based on the degree of importanceof each command. For example, weighted value of each command from a hostis pre-set by the manager, and the command importance degree iscalculated by accumulating the weighted values each time I/O(Input/Output) by a command from a host is processed. For example, themanager may set a large value for a write command for user data, and seta small value for a command for monitoring the condition of the diskarray apparatus 2 or for a command for manipulating statisticalinformation. By such setting, the command importance degree of a hostthat frequently writes user data becomes a large value, and the commandimportance degree of such a host as a managing terminal that checks theoperational condition of the disk array apparatus 2 becomes a smallvalue. A table of values to be accumulated at each I/O which are usedfor calculating the command importance degree is stored in the datastorage area 34.

[0111] In the data storage area 34, various values are stored inaddition to the initial priority value table T1, the priority valuetable T2, the table of values to be accumulated at each I/O.

[0112] For example, a login reference value to be described later isstored in the data storage area 34. This login reference value is areference priority value as a border used by the login determinationunit 32 to determine whether or not to permit the host 1 to performimmediate data transfer when the host 1 requests immediate data transferto the disk array apparatus 2. The login determination unit 32 comparesthe initial priority value of the host 1 which requests immediate datatransfer with the login reference value, and permits the host 1 toperform immediate data transfer when the initial priority value is equalto or greater than the login reference value. The login reference valuecan be arbitrarily set by the manager of the disk array apparatus 2. Themanager sets the login reference value together with the initialpriority value of each host.

[0113] The operation of the host adaptor 3 configured as described abovewill now be explained with reference to FIG. 5 and following drawings.FIG. 5 is a flowchart for explaining a process in which the disk arrayapparatus 2 allocates the immediate data buffer 33 to the host 1 a whenthe host 1 a logs into the disk array apparatus 2. First, when the hostcommunication unit 31 receives a login request from the host 1 a, thelogin determination unit 32 refers to the initial priority value tableT1 in the data storage area 34 to refer to the initial priority value ofthe host 1 a based on the host ID included in the login request (stepA1).

[0114] After this, a login negotiation for determining variousparameters related to immediate data transfer defined by iSCSI isstarted between the host 1 a and the login determination unit 32 (stepA2). Next, the login determination unit 32 determines whether or not thehost 1 a requests immediate data transfer (step A3). In a case where thehost 1 a sends a parameter for requesting use of immediate data transfer(step A3: Yes), the login determination unit 32 determines whether ornot the initial priority value referred to in step A1 is equal to orgreater than the login reference value stored in the data storage area34 (step A4).

[0115] In a case where a host 1 a which newly requests login (a newlogin host) does not request immediate data transfer (step A3: No) or ina case where the initial priority value of the new login host 1 a issmaller than the login reference value (step A4: No), the logindetermination unit 32 sends a login response representing that“immediate data=no”, i.e., immediate data transfer is not permitted, tothe new login host 1 a (step A9). In this case, immediate data transferis not performed but ordinary data transfer is performed between the newlogin host 1 a and the disk array apparatus 2.

[0116] In a case where the initial priority value of the new login host1 a is equal to or greater than the login reference value in step A4(step A4: Yes), the priority value of every host 1 that has alreadylogged in and is now permitted to perform immediate data transfer isrecalculated based on the total amount of data transferred and commandimportance degree, etc. on the priority table T2 to update the priorityvalue on the priority value table T2 (step A5). The process for priorityvalue recalculation will be specifically described later.

[0117] After this, allocation of the immediate data buffer 33 to the newlogin host 1 a is performed based on the recalculated priority values(step A6). The buffer allocation process will be described in detaillater, but the outline of the process will now be explained. First, abuffer allocation amount representing the capacity (size) of immediatedata buffer to be allocated to the new login host 1 a is calculatedbased on the priority value of the new login host 1 a. The bufferallocation unit 35 attempts to secure this buffer allocation amount inthe immediate data buffer 33. However, in some case, the immediate databuffer 33 is already allocated to other hosts 1 and the bufferallocation amount of the new login host 1 a can not be fully secured inthe immediate data buffer 33. In this case, the buffer allocation unit35 attempts to secure the buffer allocation amount of the new login host1 a in the immediate data buffer 33 by applying capacity of immediatedata buffer already allocated to other hosts 1 that have a smallerpriority value than the new login host 1 a to the buffer allocationamount of the new login host 1 a.

[0118] Next, it is determined whether or not the allocation of theimmediate data buffer 33 to the new login host 1 a in the bufferallocation process in step A6 is successful (step A7).

[0119] In a case where the allocation of the immediate data buffer 33 issuccessful (step A7: Yes), the login determination unit 32 sends a loginresponse representing that immediate data=yes to the new login host 1 a(step A8). In this case, immediate data transfer is performed betweenthe new login host 1 a and the disk array apparatus 2. On the contrary,in a case where the allocation is unsuccessful (step A7: No), the logindetermination unit 32 sends a login response representing that immediatedata=no to the new login host 1 a (step A9). In this case, ordinary datatransfer is performed between the new login host 1 a and the disk arrayapparatus 2.

[0120] Next, the priority value recalculation process in step A5 in FIG.5 will be specifically explained with reference to a flowchart shown inFIG. 6.

[0121] In this priority value recalculation process, the priority valueof every host 1 that has already logged in and is currently permitted toperform immediate data transfer is recalculated. The recalculation ofpriority value is done by calculating a write command ratio and acommand importance degree ratio for each host and adding the writecommand ratio, the command importance degree, and the initial priorityvalue. First, the write command ratio of each host is calculated (stepB1). The write command ratio is calculated based on the total amount ofdata transferred registered on the priority value table T2 shown in FIG.4B. Specifically, for example, in a case where the host 1 b is one ofthe hosts that are currently permitted to perform immediate datatransfer and thus the write command ratio of the host 1 b is to becalculated, calculation of “write command ratio of host 1 b=total amountof data transferred of host 1 b/sum total of total amounts of datatransferred of all hosts 1 currently permitted to perform immediate datatransfer” is performed. Next, the command importance degree ratio ofeach host is calculated (step B2). The command importance degree ratiois calculated based on the command importance degree registered on thepriority value table T2. Specifically, for example in a case where thecommand importance degree ratio of the host 1 b is to be calculated,calculation of “command importance degree ratio of host 1 b=commandimportance degree of host 1 b/sum total of command importance degrees ofall hosts 1 currently permitted to perform immediate data transfer” isperformed. After this, the priority value of each host is calculated(step B3). Specifically, in a case where the priority value of the host1 b is calculated, calculation of “priority value of host 1 b=writecommand ratio of host 1 b+command importance degree ratio of host 1b+initial priority value of host 1 b” is performed. The priority valuerecalculation unit 36 recalculates the priority value of every host 1that is currently permitted to perform immediate data transfer, andupdates the priority value registered on the priority value table T2 inthe data storage area 34 (step B4).

[0122] In this process, the priority value is recalculated using both ofthe write command ratio of the host and the command importance degreeratio of the host. However, the priority value may be recalculated usingeither one of them.

[0123] Next, the buffer allocation process in step A6 of FIG. 5 will bespecifically explained with reference to a flowchart shown in FIG. 7.

[0124] The buffer allocation unit 35 calculates a buffer allocationamount of the new login host 1 a based on the priority value registeredon the priority value table T2 shown in FIG. 4B (step C1). The bufferallocation amount of the new login host 1 a is calculated by, forexample, “immediate data buffer allocation amount of host 1 a=(priorityvalue of host 1 a/sum total of priority values of all hosts 1 currentlypermitted to perform immediate data transfer)×maximum buffer capacity”.Note that buffer allocation amount≦predetermined maximum value must besatisfied. Next, it is determined whether or not the calculated bufferallocation amount is equal to or greater than a predetermined referencevalue (step C2). This reference value represents the minimum capacity ofimmediate data buffer that the disk array apparatus 2 allocates to onehost. The reference value is pre-set by the manager based on the processperformance, buffer capacity, etc. of the disk array apparatus 2, and isstored in the data storage area 34. This reference value is set becauseif the capacity of immediate data buffer to be allocated to each host istoo small, the process performance can not be improved. If thecalculated buffer allocation amount is smaller than this predeterminedreference value (step C2: No), the buffer allocation is unsuccessful(step C10). In this case, allocation of the immediate data buffer 33 tothe new login host la is not performed.

[0125] If the calculated buffer allocation amount is equal to or greaterthan the predetermined reference value (step C2: Yes), the bufferallocation unit 35 attempts to secure the buffer allocation amount ofthe new login host 1 a in the immediate data buffer 33 (step C3). Next,it is determined whether or not the buffer allocation amount is secured(step C4). If there is enough free space in the immediate data buffer33, the buffer allocation amount is secured (step C4: Yes), and thebuffer allocation is regarded as successful (step C9).

[0126] On the contrary, there might be a case where the immediate databuffer 33 has been allocated to several hosts 1 at the time in questionand there is not enough free space, and the buffer allocation amountcalculated for the new login host 1 a can not be secured (step C4: No).In this case, the flow goes to step C5, and thereafter, the bufferfreeing unit 37 frees the buffer allocation amount in the immediate databuffer 33 allocated to a host 1 having a smaller priority value than thenew login host 1 a, and applies the freed buffer allocation amount tothe buffer allocation amount of the new login host 1 a.

[0127] First, the buffer allocation unit 35 extracts hosts 1 whosebuffer allocation amounts are reallocated to the new login host 1 a fromthe hosts 1 to which the immediate data buffer 33 is now allocated (stepC5). Specifically, the buffer allocation unit 35 searches for hosts 1having a smaller priority value than the new login host 1 a in the orderof smaller priority value, among the hosts 1 which are now logging inand using the immediate data buffer 33. This search is continued until“sum total of buffer allocation amounts of searched-out hosts 1≧bufferallocation amount of new login host 1 a” is satisfied. The bufferallocation unit 35 stops searching at the time the accumulated value ofbuffer allocation amounts of the searched-out hosts 1 reaches the bufferallocation amount of the new login host 1 a, and extracts thesearched-out hosts 1 as the hosts 1 whose buffer allocation amounts arereallocated to the new login host 1 a. The priority value table T2 isreferred to for this search.

[0128] Next, it is determined whether or not the extraction of hosts instep C5 is successful (step C6). If the extraction is successful, i.e.,in a case where it is turned out that the buffer allocation amount ofthe new login host 1 a can be secured by freeing the buffer allocationamount of one or more hosts 1 having a smaller priority value (step C6:Yes), the buffer freeing unit 37 requests re-login to the extractedhosts 1 for making them to re-log into the disk array apparatus 2 (stepC7). This re-login request is made by the buffer freeing unit 37performing an operation that anticipates re-login of the hosts 1. Suchan operation includes sending of an Asynchronous Message defined byiSCSI, and disconnection of the connection by FIN or RST of TCP/IPprotocol, etc. The hosts 1 that receive the re-login request once logout from the disk array apparatus 2. Since the resource occupied by thehosts 1 is freed due to the logout of the hosts 1, tie immediate databuffer 33 allocated to the hosts 1 that have logged out is freed and thebuffer allocation amount of the new login host 1 a is secured (step C8).If the buffer allocation amount is secured in this way, the bufferallocation is regarded as successful (step C9). In a case where thebuffer allocation is successful the login determination unit 32 declares“immediate data=no” in the negotiation performed when the hosts 1 thathave been extracted for re-login request re-log into the disk arrayapparatus 2. Due to this, buffer allocation for them is rejected andimmediate data transfer is not permitted.

[0129] On the contrary, in a case where it is determined in step C6 thatextraction of hosts is unsuccessful (step C6: No), that is, in a casewhere the necessary allocation amount cannot be secured by freeing allthe buffer allocation amounts of the hosts 1 having a smaller priorityvalue than the new login host 1 a, the buffer allocation is regarded asunsuccessful (step C10). In this case, allocation of the immediate databuffer 33 to the new login host 1 a is not performed because it isdetermined that the buffer allocation amount of the new login host 1 acannot be secured.

[0130] By controlling the disk array system in accordance with theprocesses shown in FIG. 5, FIG. 6, and FIG. 7, it is possible toallocate the immediate data buffer preferentially to the host which ishigh in the priority order and to achieve an effective use of theimmediate data buffer thus improvement in the performance of the wholesystem.

[0131] In the process shown in FIG. 5 for allocating the buffer to thehost that newly logs in, the procedure of recalculating the priorityvalue in step A5 is not indispensable. Therefore, the flow may advancefrom step A4 to step A6. In this case, for example, the priority valuebefore recalculation or the initial priority value may be used insteadof a priority value obtained after recalculation. The manner ofrecalculating the priority value shown in FIG. 6 is not limited to theone described above, but the priority value may be recalculated in othermanners. For example, it may be recalculated in such a manner that thepriority value of a host that has not performed immediate data transferfor a predetermined period of time is decreased. In FIG. 7, in a casewhere there is not enough free space of immediate data buffer to beallocated to the new login host, the immediate data buffer allocated toother hosts is transferred to the new login host in steps C5 to C8.However, in this case, it may be determined that the buffer allocationis unsuccessful.

[0132] Next, a process for dynamic reallocation of the immediate databuffer 33 in the disk array apparatus 2 will be explained with referenceto FIG. 8. The disk array apparatus 2 according to the present inventionperforms recalculation of the priority value of the host 1 regularly orupon an arbitrary trigger, and reallocates the immediate data buffer 33to each host 1 that logs in based on the recalculated value. That is,the buffer allocation amount can be dynamically changed upon a trigger.The trigger for performing the dynamic reallocation may be an operationor a setting by the manager, detection of login by a new host, detectionof logout by a host, etc. The disk array apparatus 2 may track the usageof the immediate data buffer 33, and may perform reallocation when theusage frequency of a given host reaches or exceeds a predeterminedlevel.

[0133] As shown in FIG. 8, in the reallocation of the immediate databuffer 33, when the trigger for performing the dynamic reallocation ispulled, the priority value of each host 1 that is logging in isrecalculated (step D1). This recalculation is performed by the priorityvalue recalculation unit 36 in the same way as steps B1 to B3 in FIG. 6.Due to this, the priority value registered on the priority value tableT2 shown in FIG. 4B is updated. Next, it is determined whether or notthe priority value is changed as the result of the recalculation (stepD2). In a case where there is no change in the priority value of anyhost 1 as the result of the recalculation, it is not necessary to changethe buffer allocation amount and the process is therefore terminated(step D2: No). In a case where there is a change in the priority value(step D2: Yes), the flow goes to step D3, wherein and whereafter thebuffer allocation unit 35 performs reallocation of the immediate databuffer 33. First, as in step C1 of FIG. 7, the buffer allocation unit 35calculates the buffer allocation amount of each host 1 (step D3).However, unlike step C1, the buffer allocation unit 35 calculates thebuffer allocation amount of all the hosts 1 that log in. For example,the buffer allocation amount of the host 1 b is calculated by “immediatedata buffer allocation amount of host 1 b=(priority value of host 1b/sum total of priority values of all hosts 1 that currently login)×maximum buffer capacity”. Note that buffer allocationamount≦predetermined maximum value must be satisfied. Next, as in stepC2 of FIG. 7, it is determined whether or not the calculated bufferallocation amount is equal to or greater than a predetermined referencevalue (step D4). This reference value represents the minimum capacity ofimmediate data buffer that the disk array apparatus 2 allocates to onehost. The reference value is pre-set by the manager based on the processperformance, buffer capacity, etc. of the disk array apparatus 2, and isstored in the data storage area 34.

[0134] If the calculated buffer allocation amount is equal to or greaterthan the predetermined reference value (step D4: Yes), the bufferallocation unit 35 updates the buffer allocation amount on the priorityvalue table T2 shown in FIG. 4B, and requests re-login to the host 1whose calculated buffer allocation amount is equal to or greater thanthe reference value, for making this host 1 to re-log into the diskarray apparatus 2 (step D5). The login determination unit 32 sets therecalculated buffer allocation amount of the host 1 which receives there-login request to a parameter (first burst length key value), in thenegotiation performed at the time of re-login. Due to this, the firstburst length key is changed and the intended change in the bufferallocation amount is achieved.

[0135] In a case where the calculated buffer allocation amount issmaller than the predetermined reference value (step D4: No), the bufferallocation unit 35 also requests re-login to the host 1 whose calculatedbuffer allocation amount is smaller than the reference value (step D6).The login determination unit 32 declares “immediate data=no” to the host1 which receives the re-login request, in the negotiation performed atthe time of re-login. Due to this, buffer allocation for them isrejected and this host 1 is not permitted to use the immediate databuffer.

[0136] By performing reallocation of the immediate data buffer 33 inthis manner, it is possible to realize a buffer allocation state that isbest suited to the condition at each occasion.

[0137] In the process shown in FIG. 5 for allocating the buffer to thehost that newly logs in, the priority value of each host is recalculatedin step A5. Therefore, the buffer allocation amount of each host may bechanged based on the priority value recalculated in step A5, not byrecalculating the priority value in step D1.

[0138] As specifically explained above, the disk array apparatusaccording to an embodiment of the present invention manages the priorityvalue for each host that logs in, and determines the buffer allocationamount based on the priority value. Due to this, the disk arrayapparatus can increase the buffer allocation amount of the host whosecommand should be processed preferentially, and can decrease the bufferallocation amount of the host whose command needs not be processedpreferentially. Therefore, according to the present invention, theability of the host which is high in the priority order is fullyutilized, and the process performance of the whole system is improved.

[0139] The disk array apparatus according to an embodiment of thepresent invention changes the parameter by recalculating the priorityvalue regularly or upon an arbitrary trigger, requesting re-login to thehosts, and re-performing login negotiation. Therefore, according to thepresent invention, the buffer allocation amount can be dynamicallychanged based on the recalculated priority value, and a bufferallocation state that is best suited to the condition at each occasioncan be built.

[0140] The preferred embodiments of the present invention have beenexplained as described above. The present invention can be structured asvarious other embodiments. For example, the information recordingapparatus according to the present invention may be other apparatusesthan a disk array apparatus. Immediate data transfer on iSCSI has beendescribed in the above embodiments, but the present invention can bewidely applied to apparatuses that use a protocol adopting a transfermethod where data transfer is started without waiting for a datatransfer request from the command reception side after a write commandis issued. In the above-described embodiments, permission or rejectionof immediate data transfer is determined or the first burst length keyvalue is changed by re-login. In addition, the present invention may bedesigned such that other iSCSI parameters like Max Connections that canonly be set in the negotiation at the time of login are changed at thetime of re-login. The priority value recalculation unit 36 in FIG. 2 maydetermine the degree of priority (priority degree) such as, for example,an order of priority of the host 1.

[0141] Further, the host adaptor 3 may be realized not by a dedicateddevice but by an ordinary computer system.

[0142] For example, by installing on a computer, a computer program forcontrolling the computer to perform the above-described operations, itis possible to make this computer to function as the host adaptor 3. Thecomputer program may be recorded on a computer-readable recording mediumsuch as a floppy disk, a CD-ROM, a hard disk, etc., or may be uploadedon a server on a network. Then, the computer program may be installed ona computer through distribution in a recording medium or downloading viaa network .

[0143] Various embodiments and changes may be made thereunto withoutdeparting from the broad spirit and scope of the invention. Theabove-described embodiments are intended to illustrate the presentinvention, not to limit the scope of the present invention. The scope ofthe present invention is shown by the attached claims rather than theembodiments. Various modifications made within the meaning of anequivalent of the claims of the invention and within the claims are tobe regarded to be in the scope of the present invention.

[0144] This application is based on Japanese Patent Application No.2003-162789 filed on Jun. 6, 2003 and including specification, claims,drawings and summary. The disclosure of the above Japanese PatentApplication is incorporated herein by reference in its entirety.

What is claimed is:
 1. An information recording apparatus storing datareceived from a plurality of host computers, said information recordingapparatus comprising: a buffer memory having a buffer area fortemporarily storing said data; a memory storing a priority degree foreach of said host computers, said priority degree being dynamicallyupdated based on a status of said data received from corresponding oneof said host computers; and a buffer allocation unit dynamicallyallocating portions of said buffer area to said host computers, saidportions of said buffer area allocated to said host computers havingrespective amounts determined based on said priority degrees of saidhost computers.
 2. The information recording apparatus according toclaim 1, further comprising a login determination unit determiningwhether or not a host computer logged into said information recordingapparatus, wherein: said memory stores an initial priority degree whichis pre-set for each of said host computers, and a reference prioritydegree representing a threshold level for the initial priority degrees;said login determination unit determines whether or not the initialpriority degree of a host computer stored in said memory is higher thanthe reference priority degree stored in said memory, when said hostcomputer logs into said information recording apparatus; and said bufferallocation unit allocates a portion of said buffer area corresponding tothe determined amount to said host computer, in a case where said logindetermination unit determines that the initial priority degree of saidhost computer is higher than the reference priority degree.
 3. Theinformation recording apparatus according to claim 1, wherein: thepriority degree is a numerical value, said value being large when thepriority degree is high, while being small when the priority degree islow; and said buffer allocation unit determines an amount of a portionof said buffer area to be allocated to a host computer by “(the prioritydegree of said host computer/total of the priority degrees of all hostcomputers to which portions of the buffer area are allocated)×a wholecapacity of said buffer memory”.
 4. The information recording apparatusaccording to claim 1, further comprising a buffer freeing unit freeingportions of said buffer are already allocated to host computers, on abasis of host computer by host computer, wherein in a case where saidbuffer allocation unit cannot secure a portion of said buffer areacorresponding to the determined amount in said buffer memory whenattempting to allocate a portion of said buffer area to a host computer:said buffer freeing unit frees a portion of said buffer area alreadyallocated to another host computer for which a priority degree lowerthan that of said host computer is set, based on a predeterminedcondition; and said buffer allocation unit allocates a portion of saidbuffer area corresponding to the determined amount to said hostcomputer, in a case where a portion of said buffer area corresponding tothe determined amount can be secured in said buffer memory due to thefreeing of the portion of said buffer area by said buffer freeing unit.5. The information recording apparatus according to claim 2, furthercomprising a priority degree determination unit, wherein: said memorystores for each host computer data representing the status correspondingto an amount of data and/or a usage degree of various commands receivedfrom the host computer and from a time the host computer logged intosaid information recording apparatus; said priority degree determinationunit determines the priority degree of each host computer that is storedin said memory and updating the stored priority degree, based on theamount of data and/or the usage degree of various commands and theinitial priority degree stored in said memory; and said bufferallocation unit determines a reallocation amount of a portion of saidbuffer area to be allocated to each host computer that has been loggedinto said information recording apparatus based on the priority degreedetermined by said priority degree determination unit, and allocates aportion of said buffer area corresponding to the determined reallocationamount to each host computer.
 6. The information recording apparatusaccording to claim 5, wherein: the priority degree is a numerical value,said value being large when the priority degree is high, while beingsmall when the priority degree is low; and said priority degreedetermination unit determines the priority degree of a host computer by“(the amount of data transferred from said host computer/total amountsof data transferred from all host computers to which portions of saidbuffer area are allocated)+(the usage degree of various commands fromsaid host computer/total of usage degrees of various commands from allhost computers to which portions of said buffer area are allocated)+theinitial priority degree of said host computer”.
 7. The informationrecording apparatus according to claim 4, further comprising a logindetermination unit determining whether or not a host computer loggedinto said information recording apparatus, wherein the freeing of theportion of said buffer area already allocated to a host computer by saidbuffer freeing unit is achieved in a manner that: said buffer freeingunit requests said host computer to re-log into said informationrecording apparatus; and said login determination unit rejectsallocation of a portion of said buffer area to said host computer, whensaid host computer re-logs into said information recording apparatus. 8.The information recording apparatus according to claim 5, wherein theallocation of the portion of said buffer area corresponding to thedetermined reallocation amount to each host computer by said bufferallocation unit is achieved in a manner that: said buffer allocationunit requests each host computer to re-log into said informationrecording apparatus; and said login determination unit changes an amountof a portion of said buffer area to be allocated to each host computer,when each host computer re-logs into said information recordingapparatus.
 9. A method for receiving data from a plurality of hostcomputers and storing the received data in an information recordingapparatus, comprising the steps of: storing a priority degree for eachof said host computers in a memory, said priority degree beingdynamically updated based on a status of said data received fromcorresponding one of said host computers; determining respective amountsof portions of a buffer area of a buffer memory to be allocated torespective host computers based on said priority degrees of said hostcomputers; and dynamically allocating the portions of the buffer area ofthe buffer memory having the amounts determined in the determining step,to the host computers.
 10. A buffer allocation method of allocating aportion of a buffer area of a buffer memory for temporarily storing dataand included in a subordinate apparatus which stores data received froma plurality of superordinate apparatuses to each superordinateapparatus, said method comprising: an allocation amount determinationstep of determining an amount of a portion of said buffer area to beallocated to each superordinate apparatus, based on a priority degreewhich is set for each superordinate apparatus and stored in a memory ofsaid subordinate apparatus; and a buffer allocating step of allocating aportion of said buffer area corresponding to the amount determined insaid allocation amount determination step to a superordinate apparatusfor which a high priority degree is set, preferentially over asuperordinate apparatus for which a low priority degree is set.
 11. Thebuffer allocation method according to claim 10, wherein in saidallocation amount determination step, an amount of a portion of saidbuffer area to be newly allocated to a new superordinate apparatus towhich a portion of said buffer area has not yet been allocated, isdetermined, and said buffer allocating step includes: an amount securingdetermination step of determining whether or not a portion of saidbuffer area corresponding to the amount determined in said allocationamount determination step can be secured in said buffer memory; a bufferfreeing step of freeing portions of said buffer area already allocatedto some or all of superordinate apparatuses for which a priority degreelower than that of said new superordinate apparatus is set, in a casewhere it is determined in said amount securing determination step thatthe portion of said buffer area cannot be secured; and a newlyallocating step of allocating a portion of said buffer areacorresponding to the amount determined in said allocation amountdetermination step to said new superordinate apparatus, by assigningamounts of portions of said buffer area freed in said buffer freeingstep to the amount determined in said allocation amount determinationstep.
 12. The buffer allocation method according to claim 11, wherein:said buffer freeing step includes: a re-login requesting step ofrequesting a superordinate apparatus to which a portion of said bufferarea is already allocated, to re-log into said subordinate apparatus;and an allocation rejecting step of rejecting allocation of a portion ofsaid buffer area to said superordinate apparatus, when saidsuperordinate apparatus re-logs into said subordinate apparatus inaccordance with a request in said re-login requesting step, and thefreeing of portions of said buffer area in said buffer freeing step isrealized by rejection of allocation of a portion of said buffer area insaid allocation rejecting step.
 13. The buffer allocation methodaccording to claim 10, further comprising a priority degree changingstep of changing the priority degree of each superordinate apparatusstored in said memory, wherein: in said allocation amount determinationstep, a reallocation amount of a portion of said buffer area to beallocated to each superordinate apparatus that has been logged into saidsubordinate apparatus is determined based on the priority degree changedin said priority degree changing step; and in said buffer allocatingstep, a portion of said buffer area corresponding to the reallocationamount determined in said allocation amount determination step isallocated to each superordinate apparatus.
 14. The buffer allocationmethod according to claim 13, wherein said buffer allocating stepincludes: a re-login requesting step of requesting each superordinateapparatus that has been logged into said subordinate apparatus to re-loginto said subordinate apparatus; and an amount changing step of changingthe amount of the portion of said buffer area to be allocated to eachsuperordinate apparatus, when each superordinate apparatus re-logs intosaid subordinate apparatus in accordance with a request in said re-loginrequesting step, and the allocation of a portion of said buffer areacorresponding to the reallocation amount to each superordinate apparatusin said buffer allocating step is realized by changing of the amount ofthe portion of said buffer area to be allocated to each superordinateapparatus in said amount changing step.
 15. A computer-readablerecording medium storing a computer program for receiving data from aplurality of host computers and storing the received data in aninformation recording apparatus, said computer program comprising thesteps of: storing a priority degree for each of said host computers in amemory, said priority degree being dynamically updated based on a statusof said data received from corresponding one of said host computers;determining respective amounts of portions of a buffer area of a buffermemory to be allocated to respective host computers based on saidpriority degrees of said host computers; and dynamically allocating theportions of the buffer area of the buffer memory having the amountsdetermined in the determining step, to the host computers.
 16. Acomputer-readable recording medium storing a computer program forallocating a portion of a buffer area of a buffer memory for temporarilystoring data and included in a subordinate apparatus which stores datareceived from a plurality of superordinate apparatuses to eachsuperordinate apparatus, said computer program comprising: an allocationamount determination step of determining an amount of a portion of saidbuffer area to be allocated to each superordinate apparatus, based on apriority degree which is set for each superordinate apparatus and storedin a memory of said subordinate apparatus; and a buffer allocating stepof allocating a portion of said buffer area corresponding to the amountdetermined in said allocation amount determination step to asuperordinate apparatus for which a high priority degree is set,preferentially over a superordinate apparatus for which a low prioritydegree is set.
 17. The computer-readable recording medium storing thecomputer program according to claim 16, wherein in said allocationamount determination step, an amount of a portion of said buffer area tobe newly allocated to a new superordinate apparatus to which a portionof said buffer area has not yet been allocated, is determined, and saidbuffer allocating step includes: an amount securing determination stepof determining whether or not a portion of said buffer areacorresponding to the amount determined in said allocation amountdetermination step can be secured in said buffer memory; a bufferfreeing step of freeing portions of said buffer area already allocatedto some or all of superordinate apparatuses for which a priority degreelower than that of said new superordinate apparatus is set, in a casewhere it is determined in said amount securing determination step thatthe portion of said buffer area cannot be secured; and a newlyallocating step of allocating a portion of said buffer areacorresponding to the amount determined in said allocation amountdetermination step to said new superordinate apparatus, by assigningamounts of portions of said buffer area freed in said buffer freeingstep to the amount determined in said allocation amount determinationstep.
 18. The computer-readable recording medium storing the computerprogram according to claim 17, wherein: said buffer freeing stepincludes: a re-login requesting step of requesting a superordinateapparatus to which a portion of said buffer area is already allocated,to re-log into said subordinate apparatus; and an allocation rejectingstep of rejecting allocation of a portion of said buffer area to saidsuperordinate apparatus, when said superordinate apparatus re-logs intosaid subordinate apparatus in accordance with a request in said re-loginrequesting step, and the freeing of portions of said buffer area in saidbuffer freeing step is realized by rejection of allocation of a portionof said buffer area in said allocation rejecting step.
 19. Thecomputer-readable recording medium storing the computer programaccording to claim 16, wherein: said computer program further comprisesa priority degree changing step of changing the priority degree of eachsuperordinate apparatus stored in said memory; in said allocation amountdetermination step, a reallocation amount of a portion of said bufferarea to be allocated to each superordinate apparatus that has beenlogged into said subordinate apparatus is determined based on thepriority degree changed in said priority degree changing step; and insaid buffer allocating step, a portion of said buffer area correspondingto the reallocation amount determined in said allocation amountdetermination step is allocated to each superordinate apparatus.
 20. Thecomputer-readable recording medium storing the computer programaccording to claim 19, wherein said buffer allocating step includes: are-login requesting step of requesting each superordinate apparatus thathas been logged into said subordinate apparatus to re-log into saidsubordinate apparatus; and an amount changing step of changing theamount of the portion of said buffer area to be allocated to eachsuperordinate apparatus, when each superordinate apparatus re-logs intosaid subordinate apparatus in accordance with a request in said re-loginrequesting step, and the allocation of a portion of said buffer areacorresponding to the reallocation amount to each superordinate apparatusin said buffer allocating step is realized by changing of the amount ofthe portion of said buffer area to be allocated to each superordinateapparatus in said amount changing step.